package com.jeeplus.test.jlnu.studentlogin.controller;

import com.alibaba.excel.util.StringUtils;
import com.jeeplus.test.jlnu.studentlogin.service.StudentLoginService;
import com.jeeplus.test.tools.resp.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/student")
public class undergraduateController {

    @Autowired
    private StudentLoginService studentLoginService;

    @GetMapping("/login")
    public R login(@RequestParam("studentId") String studentId, @RequestParam("idCard") String idCard, @RequestParam("level") String level) {
        //这个接口现在是给刚登录的人用的密码就是身份证后六位 但是如果学生改了密码 需要判断是否改了密码

        // 参数校验
        if (StringUtils.isBlank(studentId) || StringUtils.isBlank(idCard) || StringUtils.isBlank(level)) {
            return R.error().setMsg("参数不能为空");
        }
        //根据学号查看当前学生是否修改过密码
        String flag = studentLoginService.checkIsChangePasswd(studentId);
        if("0".equals(flag) || StringUtils.isBlank(flag)){
            int result = studentLoginService.check(studentId, idCard, level);
            if (result > 0) {
                return R.suc("登录成功, 学历：" + level);
            } else {
                return R.error().setMsg("登录失败");
            }
        }else {
            int i = studentLoginService.useNewPasswd(studentId, idCard, level);
            if (i > 0) {
                return R.suc("登录成功, 学历：" + level);
            } else {
                return R.error().setMsg("登录失败");
            }
        }




    }
    @GetMapping("/changePasswd")
    public R changePasswd(@RequestParam("studentId") String studentId, @RequestParam("idCard") String idCard,@RequestParam("newPasswd") String newPasswd){
        //这是学生修改密码接口 常用的修改密码逻辑需要输入学号、之前的密码（后六位）、
        // 新密码 需要判断新密码和之前的6位是不是一样的
        // 如果一样提示不能和之前密码一样
        // 不一样就可以修改密码了
        // 代码方面就是给录取信息表加两个字段 1.新密码2.是否更改密码标识 0未更改 1已更改
        if (StringUtils.isBlank(studentId) || StringUtils.isBlank(idCard) || StringUtils.isBlank(newPasswd)) {
            return R.error().setMsg("参数不能为空");
        }
        //检查新密码和之前的身份证后六位是否一致 如果一致提示不能和之前一样
        if(idCard.equals(newPasswd)){
            return R.error().setMsg("不能和旧密码一致!");
        }
        int result = studentLoginService.check(studentId, idCard,null);
        if(result>0){
            studentLoginService.changePasswd(studentId,newPasswd);
            return R.suc("修改密码成功，下次登录时无法再使用身份证号后六位登录");
        }else {
            return R.error().setMsg("学号和密码输入错误，请检查并重试");
        }

    }
}
